#ifndef ANALYZER_H_
#define ANALYZER_H_

#include "invocation.h"
#include <Python.h>
#include <string>

class Analyzer
{
	PyObject *pAnalyzer;
	PyObject *pAccumulate;
	PyObject *pAssertCoding;
	PyObject *pPrintStats;
	PyObject *pPrintRow;

public:
	const bool asserting;
	const bool benchmark;

	Analyzer(Invocation& args);
	~Analyzer();
	void accumulate(std::string inPath, std::string outPath, int M, int W,
			bool Assertion, bool adapt = false);
	bool assertCoding(std::string inPath, std::string outPath, bool del = true);
	void printStats(bool header = true);
	void printRow();
};

#endif /* ANALYZER_H_ */
